// src/database/sequelize.ts
import { Sequelize } from 'sequelize-typescript';

export default class DB_MySQL {
  sequelize = null;
  constructor(parameters) {
    const {
      port,
      host,
      user,
      password,
      database,
      connectionLimit,
    } = parameters;
    this.sequelize = new Sequelize(database, user, password || null, {
      // 自定义主机; 默认值: localhost
      host: host, // 数据库地址
      // 自定义端口; 默认值: 3306
      port: port,
      dialect: 'mysql',
      pool: {
        max: connectionLimit, // 连接池中最大连接数量
        min: 0, // 连接池中最小连接数量
        acquire: 30000,
        idle: 10000, // 如果一个线程 10 秒钟内没有被使用过的话，那么就释放线程
      },
      timezone: '+08:00', // 东八时区
    });
  }
  async test() {
    // 测试数据库链接
    try {
      // console.log('数据库连接成功', this.sequelize);
      await this.sequelize.authenticate();
    } catch (error) {
      // 数据库连接失败时打印输出
      console.error(error);
    }
  }
}
